Получение меню

С помощью этих методов вы можете получить готовую структуру навигации для сайта или приложения.

Gigma возвращает названия, ссылки, изображения и дочерние пункты. Ваш сайт сам решает, как отобразить меню и какие маршруты разрешить.

Для запросов нужен App Token приложения. Если меню ещё не создано, добавьте пункты через API управления меню.

Меню приложения

Это основной вариант для меню из CMS. Имя дерева задаёт slug корневого пункта.

Gigma не проверяет уникальность slug. Внутри одного Application используйте отдельное значение для каждого корневого меню и не назначайте его дочерним пунктам: метод вернёт первый найденный пункт с таким slug.

Получить меню по slug

Метод
GET
URL
https://api.gigma.ru/api/counterparty/menus/{slug?}
Авторизация
App Token
Headers
Token: {application_token}
Успешный ответ
200

Чтобы получить меню, передайте slug корневого пункта в адресе запроса. Если не передать slug, Gigma будет искать меню navpanel.

Параметры пути

  • slug (string, необязательный) — slug корневого пункта; значение по умолчанию — navpanel.

Пример запроса

GET /api/counterparty/menus/navpanel HTTP/1.1
Host: api.gigma.ru
Token: <application_token>
Accept: application/json

Ответ

{
	"menuItems": {
		"code": 1,
		"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
		"preview": "https://api.gigma.ru/storage/uploads/default.svg",
		"name": "Главное меню",
		"url": "navpanel",
		"children": [
			{
				"code": 2,
				"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
				"preview": "https://api.gigma.ru/storage/uploads/default.svg",
				"name": "Каталог",
				"url": "/catalog",
				"children": []
			}
		]
	}
}

В поле menuItems вы получите корневой пункт и всё дерево children.

Поле url формируется из slug пункта. Поэтому у корневого пункта в примере оно равно navpanel, а у дочернего — /catalog. Если собственное изображение не задано, avatar и preview содержат URL изображения-заглушки.

Ошибки

  • 401 — App Token отсутствует, недействителен или отключён.
  • 404 — меню с таким slug не найдено в текущем приложении.

Проектное меню

В Gigma есть ещё одна модель меню — проектное меню. Она ищет меню по точному name, а не по slug корневого пункта, и ограничивает поиск проектом Application, определённого по App Token.

Используйте этот метод только в интеграциях, которые уже работают с проектным меню. Не считайте slug и name взаимозаменяемыми.

Получить пункты проектного меню

Метод
GET
URL
https://api.gigma.ru/api/counterparty/menus/{name}/items
Авторизация
App Token
Headers
Token: {application_token}
Успешный ответ
200

Чтобы получить проектное меню, передайте его точное имя в адресе запроса.

Параметры пути

  • name (string, обязательный) — точное имя проектного меню.

Пример запроса

GET /api/counterparty/menus/Main/items HTTP/1.1
Host: api.gigma.ru
Token: <application_token>
Accept: application/json

Ответ

{
	"menuItems": [
		{
			"id": 71,
			"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
			"name": "Главная",
			"url": "/",
			"children": [
				{
					"id": 72,
					"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
					"name": "Документы",
					"url": "/documents",
					"children": []
				}
			]
		}
	],
	"menuItemsCount": 1
}

menuItems содержит только корневые элементы; вложенные пункты находятся в children. menuItemsCount — количество корневых элементов.

Ошибки

  • 401 — App Token отсутствует, недействителен или отключён.
  • 404 — проектное меню с таким именем не найдено в проекте текущего приложения.

Что учесть

Проверяйте каждый url перед переходом и разрешайте только ожидаемые маршруты.

Если меню не найдено или API временно недоступен, показывайте базовую навигацию. Не используйте кэш одного App Token для другого приложения.